package com.example.harmonyosproject.server.controller;

import com.example.harmonyosproject.pojo.AddFriend;
import com.example.harmonyosproject.pojo.Friend;
import com.example.harmonyosproject.pojo.Result;
import com.example.harmonyosproject.server.service.FriendService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@Slf4j
@RestController
@RequestMapping("/friend")
public class FriendController {

    @Autowired
    private FriendService friendService;

//    addFriend添加朋友，参数JONE对象:
//    {
//        "userId":"6",
//        "friendId":"7",
//        "text":"我是张三",
//        "nickname":"李小四"
//    }

    @PostMapping("/add")
    public Result addFriend(@RequestBody AddFriend addFriend){
        friendService.addFriend(addFriend);
        return Result.success();
    }

//    同意好友申请
//    {
//        "userId":"8",
//            "friendId":"6",
//            "nickname":"张小三"
//    }
    @PutMapping("/agree")
    public Result agreeFriend(@RequestBody AddFriend addFriend){
        friendService.agreeFriend(addFriend);
        return Result.success();
    }
//    修改好友昵称
//    {
//        "userId":"6",
//            "friendId":"7",
//            "nickname":"李大四"
//    }
    @PutMapping("/changeNickname")
    public Result changeNickname(@RequestBody Friend friend){
        friendService.changeNickname(friend);
        return Result.success();
    }
//    删除好友
//    {
//        "userId":"6",
//            "friendId":"7"
//    }
    @PostMapping("/delete")
    public Result DeleteFriend(@RequestBody Friend friend){
        log.info(friend.toString());
        friendService.DeleteFriend(friend);
        return Result.success();
    }
//    获取朋友列表
//    路径传参,/id
//返回参数
//{
//    "code": 1,
//        "msg": "success",
//        "data": [
//    {
//        "id": 8,
//            "userId": 6,
//            "friendId": 8,
//            "state": 1,
//            "nickname": "王老五",
//            "createTime": "2024-07-07T23:13:54",
//            "changeTime": "2024-07-07T23:13:54",
//            "lastMessage": "[图片]"
//            "image":"王五image"
//
//    },
//    {
//        "id": 6,
//            "userId": 6,
//            "friendId": 7,
//            "state": 1,
//            "nickname": "李小四",
//            "createTime": "2024-07-07T22:25:09",
//            "changeTime": "2024-07-07T22:25:09",
//            "lastMessage": "我要给你看个图片"
//            "image":"李四image"
//    }
//    ]
//}
    @GetMapping("/getAllFriend/{id}")
    public Result GetAllFriend(@PathVariable Integer id){
        List<Friend> friendList = friendService.GetAllFriend(id);
        return Result.success(friendList);
    }
//    获取添加朋友列表（新的朋友）
//    路径传参,/id
//      返回参数
//{
//    "code": 1,
//        "msg": "success",
//        "data": [
//    {
//        "id": 14,
//            "userId": 6,
//            "friendId": 8,
//            "headImage": "王五image",
//            "state": 3,
//            "text": "我是张三",
//            "nickname": "王老五",
//            "createTime": "2024-07-07T22:10:32"
//    },
//    {
//        "id": 18,
//            "userId": 6,
//            "friendId": 10,
//            "headImage": "老七image",
//            "state": 1,
//            "text": "我是张三",
//            "nickname": "老七",
//            "createTime": "2024-07-09T21:22:50"
//    },
//    {
//        "id": 21,
//            "userId": 6,
//            "friendId": 11,
//            "headImage": "https://shoppingsystem2.oss-cn-beijing.aliyuncs.com/HarmonyOSProject/%E9%BB%98%E8%AE%A4%E5%A4%B4%E5%83%8F.jpg",
//            "state": 2,
//            "text": "我是老八",
//            "nickname": "老八",
//            "createTime": "2024-07-09T21:23:38"
//    }
//    ]
//}
    @GetMapping("/getAllAddFriend/{id}")
    public Result getAllAddFriend(@PathVariable Integer id){
        List<AddFriend> addFriends = friendService.getAllAddFriend(id);
        return Result.success(addFriends);
    }
    @GetMapping("/getAddFriend/{id}")
    public Result getAddFriend(@PathVariable Integer id){
        AddFriend addFriend=friendService.getAddFriend(id);
        return Result.success(addFriend);
    }

    @GetMapping("/getContact/{id}")
    public Result getContact(@PathVariable Integer id){
        Object[][] friendList = friendService.getContact(id);
        return Result.success(friendList);
    }
    @PostMapping("/getFriend")
    public Result getFriend(@RequestBody Friend friend){
        Friend friend1=friendService.getFriend(friend);
        return Result.success(friend1);
    }

}
